--[[
描述 ： 多行文本控件
作者 ： fudazhi
时间 ： 14/04/14
]]

UITextView = Class(MLView,'UITextView');

UITextView.Style_Common   = MLGraphics.Style_Common;
UITextView.Style_Bold   = MLGraphics.Style_Bold;

UITextView.ALIGN_LEFT     = 0;   -- 左对齐
UITextView.ALIGN_CENTER   = 1;   -- 中对齐
UITextView.ALIGN_RIGHT    = 2;   -- 右对齐   
UITextView.id           = nil;   -- 唯一标识
UITextView.align          = nil;   -- 对齐方式

UITextView.text       = nil;   -- 显示文本
UITextView.fontHeight     = nil;   -- 字体高度
UITextView.fontColor      = nil;   -- 字体背景颜色

UITextView.viewCtrl       = nil;   -- 所属viewCtrl

UITextView.mWidth       = nil;   -- 宽度
UITextView.mHeight      = nil;   -- 高度

UITextView.mList      = nil;   -- 显示不全时调用

UITextView.mVSpace      = nil;
UITextView.lineSpac         = nil;   -- 行间距

--[[
功能   ： 初始化 UITextView 实例
参数   ： text   --  文本
          width  --  宽度
          height --  高度
          viewCtrl --- 所属viewCtrl
          lineSpac --- 行间距(可不填)
          characterSpace --字间距(可不填)
返回   ： UITextView 窗体
]]

function UITextView:init(text, width, height, viewCtrl, id,lineSpac,characterSpace)
  width  = width or UITheme.MULTILABEL_WIDTH;
  height = height or UITheme.MULTILABEL_HEIGHT;

  self:initView(width, height, viewCtrl, id);
  self.viewCtrl = viewCtrl;
  self.fs = UITextView.Style_Common;
  -- 初始化
  self.mWidth =  width;
  self.mHeight = height;
  self.fontHeight = AW(UITheme.LABEL_FONT_HEIGHT);
  self.fontColor = UITheme.LABEL_FONT_COLOR;
  self.align = UILabel.ALIGN_LEFT;
  self.text = text;
  self.mVSpace = nil;
  self.lineSpac=lineSpac;
  return self;
end

--[[
功能   ： 设置文本
参数   ： text --- 文本
返回   ： 无
]]
function  UITextView:setText(text)
  self.text = text;
  self:draw();
end


--[[
功能   ： 画控件
参数   ： text --- 文本
返回   ： 无
]]
function  UITextView:draw()
  --print('-----UITextView:draw(),mText = ',self.mText);
  if not self.text then return end
  local w, h = self:getWH();

  local strh = MLNative.measStringHeight(self.text, self.fontHeight, self.fs, w);
  local g = self:getGraphic();
  g:clear();
  if self.fontHeight > h then
    return;
  end
  if strh > h then
    --显示不全，List显示
    if self.mList then
      self.mList:delAll();
    else
      self.mList = MLScrollView.new():initScrollView(w, h, false,self.viewCtrl);
      self:add(self.mList, 0, 0);
    end

    local view = MLView.new():initView(w, strh,self.viewCtrl);
    view:getGraphic():drawRectString(self.text, 0, 0, w, strh, UIColor.COLOR_BLACK, self.fontHeight, self.fs,self.lineSpac or 0);
    -- local lines = UIUtils.calcTextLine(self.text, w, 999, self.fontHeight, self.fs);
    -- for i=1, #lines do
    --  local x, y = 0, 0;
    --  y = y + self.fontHeight * (i-1);
    --  if (self.align == self.ALIGN_LEFT) then
    --    x = 0;
    --  elseif (self.align == self.ALIGN_CENTER) then
    --    local tw, th = MLNative.TextWH(lines[i], self.fontHeight, nil);
    --    x = (w-tw)/2;
    --    tw, th = nil;
    --  elseif (self.align == self.ALIGN_RIGHT) then
    --    local tw, th = MLNative.TextWH(lines[i], self.fontHeight, nil);
    --    x = w-tw;
    --    tw, th = nil;
    --  end
    --  view:getGraphic():drawString(lines[i], x, y, self.fontColor, self.fontHeight, self.fs);
    -- end  
    self.mList:add(view, 0, 0);
  else
    -- local lines = UIUtils.calcTextLine(self.text, w, 999, self.fontHeight, self.fs);
    -- for i=1, #lines do
    --  local x, y = 0, (h-strh)/2;
    --  y = y + self.fontHeight * (i-1);
    --  if (self.align == self.ALIGN_LEFT) then
    --    x = 0;
    --  elseif (self.align == self.ALIGN_CENTER) then
    --    local tw = MLNative.measStringWidth(lines[i], self.fontHeight, nil);
    --    x = (w-tw)/2;
    --    tw = nil;
    --  elseif (self.align == self.ALIGN_RIGHT) then
    --    local tw = MLNative.measStringWidth(lines[i], self.fontHeight, nil);
    --    x = w-tw;
    --    tw = nil;
    --  end
    --  g:drawString(lines[i], x, y, self.fontColor, self.fontHeight, self.fs);
    --  -- g:drawString(lines[i], x, y, self.fontColor, self.fontHeight, self.fs);
    -- end
    if self.mList  then
      self:del(self.mList);
      self.mList  = nil ;
    end
    self:getGraphic():drawRectString(self.text, 0, 0, w, h, UIColor.COLOR_BLACK, self.fontHeight, self.fs,self.lineSpac or 0);

  end

end
--[[
功能   ： 显示控件
参数   ： 无
返回   ： 无
]]
function UITextView:show()
    self:draw();
end
--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UITextView:update() 
   self:draw();
end

--[[
-----使用方法 V2.0
local textView = UITextView.new():init('我是text文本', AW(150), AW(40), self)
textView.fontHeight         = AW(14);    -- 字体高度
textView.fontColor          = UIColor.COLOR_BLACK;      -- 字体背景颜色
rootView:add(textView, 0, 0);

]]

